デフォルトVPCを使うべきではない理由を簡潔にまとめてみた
はじめに
こんにちは、和田です。
今回はデフォルトVPCについて調査したのでその内容を記載します。
デフォルトVPCとは
デフォルトVPCとはAWSアカウント作成時に各リージョンに作成されるVPCです。
コンソールから確認した時に「デフォルト VPC」が「はい」のステータスのVPCがデフォルトVPCです。
デフォルトVPCは、以下のコンポーネントで構成されています。
- 172.31.0.0/16のCIDRのVPC
- /20の3つのパブリックサブネット
- 172.31.0.0/20
- 172.31.16.0/20
- 172.31.32.0/20
- デフォルトVPCにアタッチされたインターネットゲートウェイ
- 0.0.0.0/0をインターネットゲートウェイにポイントさせるルート
- デフォルトのセキュリティグループ
- デフォルトのNACL
引用:https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/default-vpc-components.html
デフォルトVPCを使うべきではないのか?
AWSのリファレンスには以下の記載があります。
デフォルト VPC は、すぐに使用を開始する場合や、ブログやシンプルなウェブサイトなど、パブリックインスタンスを起動する場合に適しています。デフォルト VPC のコンポーネントは、必要に応じて変更できます。
デフォルトVPCはパブリックサブネット3つを備えた構成のため、 すぐに使う必要があり、パブリックに作成してもよいリソースを作成する ことに適していると読み取れます。
AWSのベストプラクティスとして、基本的にAWSリソースはプライベート(インターネットからのアクセスをさせない)に作成することが推奨されており、その実現のため日々アップデートがされています。
意図せずパブリックにリソースを作成してしまうことを防ぐためにも、前述の すぐに使う必要があり、パブリックに作成してもよいリソースを作成する といった特段の場合以外は、デフォルトVPCは使わない方が良いと考えるべきでしょう。
また、デフォルトVPCやサブネットのCIDRが固定されているため、ネットワーク設計において柔軟性に欠ける特徴があります。新たにプライベートサブネットを作成したり、VPCのCIDRを拡張することも可能ですが、「それであれば初めからわざわざデフォルトVPCを使わなくてよくないか?」と考えられます。
デフォルトVPCの削除
デフォルトVPCは削除することが可能です。
そのため、できれば削除してしまうことをおすすめします。
削除方法については以下のブログを参照ください。
※VPCは関連づけられたリソースがある場合は削除できない仕様になっているので、誤って起動中のリソースごと削除することは防げます。
削除したデフォルトVPCの復旧
基本的にデフォルトVPCを使うべきではないという旨を記載してきましたが、AWSの提供するハンズオンでデフォルトVPCを使わないといけないことがあるようです。
そのような場合は復元が可能なため、都度復元するのがよいでしょう。
最後に
まとめると、デフォルトVPCは
- セキュリティのベストプラクティス的に使わない方が良い
- 使わなきゃいけない場合もほとんどない
- ハンズオンなどで必要な場合は復元できる
ため、削除してしまうことをおすすめします。